package com.smartStatus.gateway.configure;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName : RouterConfig
 * @Author : lby
 * @Date: 2020/12/1 9:19
 * @Description : 路由配置
 */
@Configuration
public class RouterConfig {

    /**
     * 配置网关跳转路由
     */
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("smart-status-auth", r -> r.path("/auth/**")
                        .filters(f -> f.stripPrefix(1))
//                        .uri("http://127.0.0.1:3000"))
                        .uri("http://smart-status-auth:3000"))
                .route("smart-status-upms-blz", r -> r.path("/admin/**")
                        .filters(f -> f.stripPrefix(1))
//                        .uri("http://127.0.0.1:4000"))
                        .uri("http://smart-status-upms-blz:4000"))
                .route("smart-status-gateway", r -> r.path("/gateway/**")
                        .filters(f -> f.stripPrefix(1))
//                        .uri("http://127.0.0.1:9999"))
                        .uri("http://smart-status-gateway:9999"))
                .route("smart-status-tx-manager", r -> r.path("/tx-manager/**")
                        .filters(f -> f.stripPrefix(1))
//                        .uri("http://127.0.0.1:5004"))
                        .uri("http://smart-status-tx-manager:5004"))
                .route("smart-status-websocket", r -> r.path("/websocket/**")
                        .filters(f -> f.stripPrefix(1))
//                        .uri("http://127.0.0.1:5000"))
                        .uri("http://smart-status-websocket:5000"))
                .route("smart-status-payment", r -> r.path("/payment/**")
                        .filters(f -> f.stripPrefix(1))
//                        .uri("http://127.0.0.1:5000"))
                        .uri("http://smart-status-payment:8181"))
                .build();
    }
}
